// 商品管理API接口
import request from '@/utils/request'

// 商品分页查询
export function getProductPage(params) {
  return request({
    url: '/api/product/page',
    method: 'get',
    params
  })
}

// 获取商品详情
export function getProductDetail(id) {
  return request({
    url: `/api/product/${id}`,
    method: 'get'
  })
}

// 新增商品
export function createProduct(data) {
  return request({
    url: '/api/product',
    method: 'post',
    data
  })
}

// 更新商品
export function updateProduct(id, data) {
  return request({
    url: `/api/product/${id}`,
    method: 'put',
    data
  })
}

// 删除商品
export function deleteProduct(id) {
  return request({
    url: `/api/product/${id}`,
    method: 'delete'
  })
}

// 获取商品分类列表（用于下拉菜单）
export function getCategoryList() {
  return request({
    url: '/api/category/list',
    method: 'get'
  })
}

// 获取分类树
export function getCategoryTree() {
  return request({
    url: '/api/category/tree',
    method: 'get',
    // 后端返回的是原始数组，无统一 code，直接返回 data
    meta: { raw: true }
  })
}

// 分类分页查询
export function getCategoryPage(params) {
  return request({
    url: '/api/category/page',
    method: 'get',
    params
  })
}

// 新增分类
export function createCategory(data) {
  return request({
    url: '/api/category',
    method: 'post',
    data
  })
}

// 更新分类
export function updateCategory(id, data) {
  return request({
    url: '/api/category',
    method: 'put',
    data: { ...data, id }
  })
}

// 删除分类（默认级联删除）
export function deleteCategory(id, cascade = true) {
  return request({
    url: `/api/category/${id}`,
    method: 'delete',
    params: { cascade }
  })
}

// 级联删除分类及其下的所有商品
export function deleteCategoryWithProducts(id) {
  return request({
    url: `/api/category/${id}/cascade`,
    method: 'delete'
  })
}

// 递归级联删除分类及其子分类下的所有商品
export function deleteCategoryRecursively(id) {
  return request({
    url: `/api/category/${id}/cascade-recursive`,
    method: 'delete'
  })
}

// 检查分类下商品数量
export function getCategoryProductCount(id) {
  return request({
    url: `/api/category/${id}/products/count`,
    method: 'get'
  })
}

// 检查分类及其子分类下商品数量
export function getCategoryProductCountRecursively(id) {
  return request({
    url: `/api/category/${id}/products/count-recursive`,
    method: 'get'
  })
}

// 获取品牌列表
export function getBrandList() {
  return request({
    url: '/api/brand/list',
    method: 'get'
  })
}

// 品牌分页查询
export function getBrandPage(params) {
  return request({
    url: '/api/brand/page',
    method: 'get',
    params
  })
}

// 获取品牌详情
export function getBrandDetail(id) {
  return request({
    url: `/api/brand/${id}`,
    method: 'get'
  })
}

// 新增品牌
export function createBrand(data) {
  return request({
    url: '/api/brand',
    method: 'post',
    data
  })
}

// 更新品牌
export function updateBrand(id, data) {
  return request({
    url: `/api/brand/${id}`,
    method: 'put',
    data
  })
}

// 删除品牌
export function deleteBrand(id) {
  return request({
    url: `/api/brand/${id}`,
    method: 'delete'
  })
}


// 上传图片
export function uploadImage(file) {
  const formData = new FormData()
  formData.append('file', file)
  return request({
    url: '/api/file/upload',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

// 删除图片
export function deleteImage(imageUrl) {
  return request({
    url: '/api/file/delete',
    method: 'delete',
    params: { imageUrl }
  })
}
